/*
背景
有一种特殊偶数，它每一位上的数字都两两不相同。我们现在需要找出四位数中某一区间内的这类偶数。

输入
所要寻找的四位偶数的范围。每组输入有两个数字：第一个数字是最小范围；第二个数字是最大范围。如果输入遇到0，输入结束。

输出
列出此范围内的所有特殊偶数，并且列出此范围内特殊偶数的个数。
*/

/*
测试用例1:
输入：
3000 3020
6040 6090
0 0
输出：
3012  3014  3016  3018  ↵
counter=4↵
6042  6048  6052  6054  6058  6072  6074  6078  6082  6084  ↵
counter=10↵

测试用例2:
输入：
9  101
87 -1
0 0
输出：
Error↵
Error↵
*/
#include <iostream>
#include <vector>
#include <map>
using namespace std;

int main(int argc, char *argv[]) {
	
	// 存储最值
	vector<int> v_min;
	vector<int> v_max;
	
	// 接收用户输入
	int num1, num2;
	cin >> num1 >> num2;
	
	while(num1!=0 || num2!=0)
	{
		v_min.push_back(num1);
		v_max.push_back(num2);
		cin >> num1 >> num2;
	}
	
	// 依次处理各个范围
	for (int i=0; i<v_min.size(); i++)
	{
		// 判断范围是否符合规范
		int min = v_min[i];
		int max = v_max[i];
		
		// 不符合规范
		if (!(min < 10000 && min >= 1000 && max < 10000 && max >= 1000))
		{
			cout << "Error" << endl;
			continue;
		}
		
		// 遍历范围中的各个偶数
		int count = 0;
		min = min % 2 == 0 ? min : min+1;
		for (int num=min; num<=max; num+=2)
		{
			int temp = num;
			map<int, int> m;
			
			while (temp != 0)
			{
				// 获取键
				int key = temp % 10;
				
				// 键存在
				if (m.find(key) != m.end())
					break;
				
				// 存储键
				m[key] = 1;
				temp /= 10;
			}
			
			// 不满足要求
			if (temp != 0)
				continue;
			
			// 满足要求，输出
			cout << num << "  ";
			count++;
		}
		
		cout << endl;
		cout << "counter=" << count << endl;
		
	}
}